package com.qkl.user.utils;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;

import java.util.concurrent.TimeUnit;

/**
 * Redis 操作工具类（专注验证码相关）
 */
@Component
public class RedisCaptchaUtil {
    @Autowired
    private StringRedisTemplate stringRedisTemplate;

    // 验证码过期时间：5分钟（可根据需求调整）
    private static final long CAPTCHA_EXPIRE_MINUTES = 5;

    /**
     * 存储验证码到 Redis
     * @param captchaKey 验证码唯一标识（UUID）
     * @param code 验证码内容（小写存储，统一校验规则）
     */
    public void setCaptcha(String captchaKey, String code) {
        stringRedisTemplate.opsForValue()
                .set(captchaKey, code.toLowerCase(), CAPTCHA_EXPIRE_MINUTES, TimeUnit.MINUTES);
    }

    /**
     * 从 Redis 获取验证码
     * @param captchaKey 验证码唯一标识
     * @return 存储的验证码（无则返回 null）
     */
    public String getCaptcha(String captchaKey) {
        return stringRedisTemplate.opsForValue().get(captchaKey);
    }

    /**
     * 删除 Redis 中的验证码（校验成功后删除，防止重复使用）
     * @param captchaKey 验证码唯一标识
     */
    public void deleteCaptcha(String captchaKey) {
        stringRedisTemplate.delete(captchaKey);
    }
}
